![Pythonを使ってmixpanelにデータを送信してみる](https://devio2023-media.developers.io/wp-content/uploads/2023/10/icatch20231031.jpg)
Pythonを使ってmixpanelにデータを送信してみる
ミックスパネラーの國崎です。
今回はサーバーサイド言語として人気のPythonを使ってmixpanelにデータを送信するをやってみました。
この記事でわかること
- Pythonを使ったmixpanelへのデータ送信
- Pythonで送信するとmixpanelにどんな感じで反映されるか
今回はPythonを記述していく環境としてGoogle Colaboratoryを使います。
Pythonで書いてみる
インストール
まずmixpanelのライブラリをインストールします。
pip install mixpanel
ライブラリをインストールしたらmixpanelに送るプロジェクトトークンを以下のように指定します。
from mixpanel import Mixpanel mp = Mixpanel("YOUR_TOKEN")
mixpanelへのデータ送信
ライブラリのインストールをしたら早速データをmixpanelに送信してみます。
以下はイベントデータを送信する際の例です。
# tracks an event with certain properties mp.track(DISTINCT_ID, 'イベント名', {'イベントプロパティ1' : 'イベントプロパティ1の値', 'イベントプロパティ2': 'イベントプロパティ2の値'})
DISTINCT_IDはmixpanel内においてユーザーを一意に識別するための値になります。
よくあるユースケースだと会員IDなどがここでは用いられます。
実際にmixpanelに送信する内容で記載してみます。
mp.track("masao_python", 'button clicked', {'color' : 'blue', 'size': 'large'})
これで実行すると以下のようにmixpanelにデータ送信がされていました。
上記の状態だと指定したプロパティしか取れていないですが、実際にはユーザーが使っているブラウザやデバイス、OSのユーザーエージェントに紐づく情報も取得することができます。
その場合は以下の手順を行います。
ua-parserをインストールします。
pip install ua-parser
以下はサンプル文です。
from mixpanel import Mixpanel from ua_parser import user_agent_parser # Mixpanelのインスタンスを初期化 mp = Mixpanel("YOUR_TOKEN") def track_to_mp(request, event_name, properties): # ユーザーエージェントの情報を解析してプロパティに追加 parsed = user_agent_parser.Parse(request.headers["User-Agent"]) properties.update({ "$browser": parsed["user_agent"]["family"], "$device": parsed["device"]["family"], "$os": parsed["os"]["family"], }) properties["ip"] = request.remote_addr mp.track(request.user_id, event_name, properties) def handle_event(request): # イベントを処理するロジック(適宜変更してください) # サンプルイベントをMixpanelに送信 track_to_mp(request, "sample_event_name", {"sample_property_key": "sample_property_value"}) return "Event tracked successfully!" # 実際のリクエストオブジェクトを使用してこの関数を呼び出す必要があります # result = handle_event(actual_request) # print(result)
実際に計測ができるとこんな感じでイベント時のDevice/Browser/OSも取得ができます。
またユーザーのプロフィールに関する情報であるユーザープロパティを送信したい場合は以下の記述を行います。
## create or update a profile with First Name, Last Name, ## E-Mail Address, Phone Number, and Favorite Color ## without updating geolocation data or $last_seen mp.people_set('kunisaki_python', { '$first_name' : 'masao', '$last_name' : 'kunisaki', '$email' : 'masaosama.kunisaki@example.com', '$phone' : '5555555555', 'Favorite Color' : 'red' }, meta = {'$ignore_time' : True, '$ip' : 0})
上記のデータをmixpanelに送信すると以下のユーザープロパティが計測されていました。
以上Pythonを使ってmixpanelにデータを送信してみる、の検証でした。
クラスメソッドが行っているmixpanelの支援
クラスメソッドではmixpanelをすでにお使いのお客様にも以下の支援サービスを提供しております。
- PoC…検証環境提供
- プランニング支援…KPI設計の支援/QA対応
- 実装支援…開発の支援/SaaS連携支援
- 伴走支援…定例など
mixpanelのKPI設計は以下記事でも紹介している専用の測定フレームワークを用いたプランニング支援をさせていただきます。
mixpanelの測定フレームワーク作り方のコツ!サンプルを例に解説!
また実装いただいた後の伴走支援では実際にお使いになられているお客様の課題感などをヒアリングさせていただき、ご要望に沿った内容での定例を設けさせていただき、成果につなげるための分析手法のご提案などをさせていただきます。
今回の記事を見てmixpanelについて詳細の話を聞きたい、興味を持ったという方はぜひぜひクラスメソッドまでお問い合わせください!!